# 迭代
lista = [1,2,3,4,5]
for i in lista:
    print(i)

# 将一个容器 转换成一个 迭代器
it = iter(lista)    # iteratable 可迭代的
print(it)
print(type(it))
# iterator  迭代器
# 能用next 是迭代器
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))
# iterator  一定是 iterable
#  迭代器 一定是 可迭代的
#  容器都是可迭代的

#  生成器 也是一种迭代器
#  迭代器都可以使用next 函数 来进行调用

from collections import Iterable
from collections import Iterator

lista = [1,2,3]
tuplea = (1,2,3)

print(isinstance(lista,Iterable))
print(isinstance(lista,Iterator))